package com.simple.core;

import java.util.List;

/**
 * 这是一个用于发送事件的接口，框架允许使用此类型为变量类型，进行自动化注入
 */
public interface Sender {

    /**
     * 调用此方法将发送一个观察事件
     *
     * @param carrier 它是数据携带者，它携带着需要传递的数据
     * @param <T>     观察者处理结果，存储结果的类型
     * @return 观察者将处理结果反馈给事件发送者，是一个升级变体，允许看不见的两个对象进行简单的双向通信
     */
    <T> List<T> send(Carrier carrier);
}
